package algo3.pruebas.armasTest;

import algo3.modelo.Posicion;
import algo3.modelo.armas.Arma;
import algo3.modelo.armas.Danio;
import algo3.modelo.armas.MinaSubmarinaDobleConRetardo;


public class MinaSubmarinaDobleConRetardoTest extends MinaTestConHerencia {

	public Arma crearArma(Posicion posicion){
		return new MinaSubmarinaDobleConRetardo(posicion);
	}

	public void testObtenerlaListaDeDanioDeMinaSubmarinaDobleConRetardo() {
		Posicion posicion = new Posicion(4,5);

		MinaSubmarinaDobleConRetardo mina = new MinaSubmarinaDobleConRetardo(posicion);
		mina.avanzarTurno();
		mina.avanzarTurno();

		//Testeo todas las posiciones que deberia tener según el tipo de mina
		assertEquals(new Posicion(3,4), mina.getListaDeDanios().get(0).getPosicion());
		assertEquals(new Posicion(4,4), mina.getListaDeDanios().get(1).getPosicion());
		assertEquals(new Posicion(5,4), mina.getListaDeDanios().get(2).getPosicion());
		assertEquals(new Posicion(3,5), mina.getListaDeDanios().get(3).getPosicion());
		assertEquals(new Posicion(4,5), mina.getListaDeDanios().get(4).getPosicion());
		assertEquals(new Posicion(5,5), mina.getListaDeDanios().get(5).getPosicion());
		assertEquals(new Posicion(3,6), mina.getListaDeDanios().get(6).getPosicion());
		assertEquals(new Posicion(4,6), mina.getListaDeDanios().get(7).getPosicion());
		assertEquals(new Posicion(5,6), mina.getListaDeDanios().get(8).getPosicion());
	}
	
	public void testObtenerTipoDeDanioDeMinaSubmarina() {
		Arma mina = new MinaSubmarinaDobleConRetardo(new Posicion(4,5));
		mina.avanzarTurno();
		mina.avanzarTurno();
		assertEquals((mina.getListaDeDanios()).get(0).getPosicion(),new Posicion(3,4));
		Danio danio = mina.getListaDeDanios().get(0);
		
		assertEquals(MinaSubmarinaDobleConRetardo.class, danio.getTipoDeArma());
	}
}

